package com.ruoyi.project.system.mapper;

import com.ruoyi.project.system.domain.SysAttr;
import com.ruoyi.project.system.domain.SysDeptAttr;
import com.ruoyi.project.system.domain.SysPost;

import java.util.List;

/**
 * 属性信息 数据层
 * 
 * @author ruoyi
 */
public interface SysAttrMapper
{
    /**
     * 查询属性数据集合
     * 
     * @param attr 属性信息
     * @return 属性数据集合
     */
    public List<SysAttr> selectAttrList(SysAttr attr);

    /**
     * 查询所有属性
     * 
     * @return 属性列表
     */
    public List<SysAttr> selectAttrAll();

    /**
     * 通过属性ID查询属性信息
     * 
     * @param attrId 属性ID
     * @return 属性对象信息
     */
    public SysAttr selectAttrById(Long attrId);

    /**
     * 删除岗位信息
     * 
     * @param attrId 岗位ID
     * @return 结果
     */
    public int deleteAttrById(Long attrId);

    /**
     * 修改岗位信息
     * 
     * @param attr 岗位信息
     * @return 结果
     */
    public int updateAttr(SysAttr attr);

    /**
     * 新增岗位信息
     * 
     * @param attr 岗位信息
     * @return 结果
     */
    public int insertAttr(SysAttr attr);

    /**
     * 校验岗位名称
     * 
     * @param attrName 岗位名称
     * @return 结果
     */
    public SysAttr checkAttrNameUnique(String attrName);

    /**
     * 部门id查询属性id
     * @param deptId
     * @return
     */
    public List<Integer> selectAttrListByDeptId(Long deptId);

    /**
     * 部门id查询属性对象集合
     * @param deptId
     * @return
     */
    public List<SysAttr> selectListByDeptId(Long deptId);

    /**
     * 批量新增部门属性信息
     *
     * @param sysDeptAttrs 部门属性表
     * @return 结果
     */
    public int batchDeptAttr(List<SysDeptAttr> sysDeptAttrs);


    /**
     * 通过部门ID删除部门和属性关联
     *
     * @param deptId 部门ID
     * @return 结果
     */
    public int deleteDeptAttrByDeptId(Long deptId);

}
